Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

7장. tokens/sec와 메모리 대역폭

이 장의 목표 “초당 30 토큰”, “tps 12.5” 같은 표기의 의미와, 내 맥에서 어떤 속도가 나올지 예측하는 감을 잡습니다.

메모리 대역폭이라는 단어와 친해집니다.


7.1 tokens/sec란?

1초에 모델이 몇 개의 출력 토큰을 만드는지 나타내는 단위입니다.

20 tokens/sec
→ 1초에 20개 토큰
→ 100토큰 답변에 약 5초
→ 500토큰 답변에 약 25초

체감 기준입니다.

속도체감
5 tokens/sec 이하답답함, 글로벌 대기
10 tokens/sec천천히 읽는 정도
20 tokens/sec쾌적함, 사람이 따라 읽을 수 있음
30 tokens/secChatGPT와 비슷한 흐름
50+ tokens/sec매우 빠름

한국어는 영어보다 토큰이 더 쪼개진다 (3장) 는 걸 기억하세요.

같은 30 tokens/sec여도 한국어로 답변할 때는 체감이 절반 정도 입니다.


7.2 속도를 결정하는 진짜 요인

대부분 사람들이 처음에 짐작하는 건 이렇습니다.

"CPU/GPU가 빠르면 빠를 거다"

반은 맞고 반은 틀립니다.

LLM 추론에서 가장 중요한 건 메모리 대역폭(Memory Bandwidth) 입니다.

이유는 단순합니다.

모델은 매 토큰을 만들 때마다 모델 가중치 전체를 메모리에서 읽어들여야 합니다.

32B Q4 모델이 16GB라면, 매 토큰마다 16GB를 다 훑어야 합니다.

초당 토큰 수 ≈ 메모리 대역폭 / 모델 크기

이 식이 핵심입니다.


7.3 맥 통합 메모리 대역폭

같은 64GB여도 맥 모델마다 메모리 대역폭이 다릅니다.

메모리 대역폭
M1 / M2 / M3 / M4약 100~120 GB/s
M1 Pro / M2 Pro / M3 Pro / M4 Pro약 150~200 GB/s
M1 Max / M2 Max / M3 Max / M4 Max약 300~400 GB/s
M1 Ultra / M2 Ultra / M3 Ultra약 800 GB/s
M5 Pro약 300 GB/s
M5 Max약 600 GB/s

(정확한 값은 칩 세대·구성마다 다름. Apple 공식 스펙 참조.)

기억할 건 이겁니다.

같은 메모리 용량(예: 64GB)이어도, Pro/Max에 따라 속도 차이가 두 배 이상 납니다.


7.4 내 맥에서 나올 속도 어림셈

핵심 식 한 번 더.

이론 최대 tokens/sec ≈ 메모리 대역폭(GB/s) / 모델 크기(GB)

예시. 32B Q4(약 16GB) 모델을:

어림 속도
M4 Pro (~200 GB/s)약 12 tok/s
M5 Pro (~300 GB/s)약 18 tok/s
M4 Max (~400 GB/s)약 25 tok/s
M5 Max (~600 GB/s)약 37 tok/s
M2 Ultra (~800 GB/s)약 50 tok/s

이건 이론 최대치 입니다. 실제로는 70~80% 정도 나오는 게 보통입니다.

같은 식으로 70B Q4(약 35GB)는:

어림 속도
M4 Pro약 5 tok/s
M5 Pro약 8 tok/s
M4 Max약 11 tok/s

70B는 빠른 칩이 있어도 답답할 수 있다는 게 보이죠.


7.5 양자화가 속도에도 영향을 준다

5장에서 양자화는 메모리를 줄이는 기술이라고 했습니다. 한 가지가 더 있습니다.

양자화는 속도도 빠르게 합니다.

이유는 위 식 그대로입니다.

초당 토큰 수 ≈ 메모리 대역폭 / 모델 크기

모델 크기가 줄어들면 같은 대역폭에서 더 빨라집니다.

32B 기준 어림:

양자화모델 크기M5 Pro 어림 속도
FP1664GB(메모리 부족)
Q832GB약 9 tok/s
Q520GB약 15 tok/s
Q416GB약 18 tok/s
Q312GB약 25 tok/s

속도가 부족하면 양자화를 한 단계 더 줄이는 것도 방법. 단, Q3 이하는 품질 손실에 주의 (5장).


7.6 Decode 속도 vs Prefill 속도

6장에서 본 두 단계 다시 짚어봅니다.

단계무엇영향
Prefill입력 전체 읽기긴 문서 → 첫 토큰까지 오래 걸림
Decode한 토큰씩 출력우리가 보통 말하는 tokens/sec

긴 문서 분석에서는 prefill이 더 답답할 수 있습니다.

[입력 20K 토큰 prefill 12초] [답변 decode 4초]
                            ↑
                         답변이 빨리 끝나도
                         처음 멈춰있는 시간이 더 길게 느껴짐

해결책

  • 컨텍스트를 필요한 만큼만 (6장)
  • 시스템 프롬프트를 짧게
  • 같은 문서를 여러 번 묻는다면 컨텍스트 캐싱(22장) 활용

7.7 속도를 실제로 측정해보기

Ollama에서는 다음 명령으로 응답 속도를 즉시 볼 수 있습니다.

$ ollama run qwen3:32b --verbose

--verbose 옵션을 붙이면 응답 후 이런 통계가 찍힙니다.

total duration:       8.4s
load duration:        50ms
prompt eval rate:     180 tokens/s   ← prefill
eval rate:            18.2 tokens/s  ← decode

여기서 eval rate 가 우리가 신경 쓰는 그 값입니다.

LM Studio에서는 화면 우하단에 실시간 속도가 그래프로 표시됩니다 (16장).


7.8 속도가 갑자기 느려질 때 점검 리스트

평소 20 tok/s가 잘 나오던 모델이 오늘은 갑자기 5 tok/s로 떨어졌다면?

  1. 컨텍스트가 갑자기 커졌나? 대화가 길어지면 KV Cache 누적으로 느려집니다.
  2. 메모리 압박이 있나? 활성 상태 보기에서 swap 사용량 확인.
  3. 모델이 두 개 동시 로드돼 있나? ollama ps 로 확인.
  4. macOS가 절전 모드인가? 배터리 사용 시 GPU 클럭이 떨어집니다.
  5. 외장 디스플레이가 4개 이상 연결됐나? 드물지만 GPU 자원 분산 영향이 있습니다.

이 장에서 기억할 한 가지

tokens/sec ≈ 메모리 대역폭 / 모델 크기

그래서 양자화를 더 줄이거나, 모델 크기를 줄이면 보통 비례해서 빨라집니다.

맥 칩의 Pro/Max 등급은 메모리 대역폭 차이가 결정적입니다.


손으로 해볼 것

1. 내 맥 메모리 대역폭 확인

Apple 지원 사이트에서 내 맥 모델을 검색하고 메모리 대역폭(Memory Bandwidth) 값을 메모하세요.

예) M5 Pro 64GB → 약 300 GB/s

2. 이론 최대 속도 계산해보기

내 맥의 대역폭 ÷ 후보 모델 크기 를 계산하세요.

  • 8B Q4 (약 4GB)
  • 14B Q4 (약 7GB)
  • 32B Q4 (약 16GB)

각각 몇 tok/s 가 나올지 어림셈해보세요.

17장에서 Ollama로 실제 모델을 돌려보고 예측 vs 실측 을 비교할 겁니다.


여기까지가 1부의 끝 입니다.

이제 모델 페이지의 거의 모든 숫자를 읽을 수 있습니다.

다음 장(2부 시작)부터는 Hugging Face에서 모델을 받는 법 을 실전 화면 기준으로 다룹니다.